第54篇:蓝队分析辅助工具箱V0.43,新增内存马反编译分析及Jar包恶意类名搜索功能
Part1 前言
大家好,我是ABC_123。年前写了这么一款蓝队分析辅助工具箱,看到很多朋友都在使用,于是我也抽出时间把很多功能进行了优化和更新。“蓝队分析辅助工具箱”就是把我平时写的蓝队小工具集合起来形成的,重点解决蓝队分析工作中的一些痛点问题。
欢迎关注我的公众号"ABC123安全研究实验室",ABC_123坚持99%原创,不抄袭文章,不发水文,不发广告。
Part2 使用说明及功能介绍
端口连接添加ip归属地址
假设甲方客户的内网主机中了恶意病毒,蓝队人员通常会执行netstat -an命令去查看每个端口或者进程连接国外ip地址情况。将netstat -an结果贴到工具中,点击“查询ip对应物理地址”按钮,程序就会在每一行结果后面,添加上每个ip地址对应的国家、城市、经纬度、国外大学等物理地址,方便蓝队人员快速定位出存疑的ip、端口、进程,而且此功能无需联网使用,断网情况下仍然可以用。本次更新优化了查询速度,基本上秒出结果。
冰蝎及哥斯拉流量解密功能
编写这个功能耗费了我很大的精力,对于冰蝎webshell,从流量中找到秘钥即可解密。对于哥斯拉webshell,目前只支持java型webshell流量解密,其它功能后续再加上。由于哥斯拉低版本的1.x-2.x与3.x-4.x版本的流量加密过程稍微有点不一样,因此解密功能分开写了。
如下图所示,可以清晰看到攻击者具体进行了哪些操作,方便大家在编写蓝队分析报告,直观地将危害性反馈给甲方客户。
如下图所示,可以清楚看到,攻击者使用哥斯拉webshell获取了服务器的当前环境变量等信息。
新增5种Java内存马class文件反编译功能
通过调用Intellij Idea、CFR、Procyon、JD-Core、JDK等5种反编译工具接口,分别对Base64加密的class文件、转成Byte数组的class文件、BECL编码的class文件、Base64编码+Gzip编码的class文件、原版class文件反编译成java代码,方便蓝队人员分析异常流量中的内存马代码。
当然,此功能对于红队人员也特别方便,方便大家编写tomcat、springboot、weblogic内存马时进行class文件反编译对比分析。
1 如下图示所示,程序对Base64加密的内存马class文件进行反编译分析。
2 如下图示所示,程序对Byte数组的内存马class文件进行反编译分析。
3 如下图示所示,程序对BECL编码加密的内存马class文件进行分析。
4 如下图示所示,程序对Base64+Gzip压缩的内存马class文件进行反编译分析。
5 如下图示所示,程序对class文件进行反编译分析。
Jar包搜索指定类名
对于蓝队人员,此功能可以在指定的jar包目录中筛选出含有恶意类名的jar包文件,现在很多红队人员制作的不死内存马,会将jar包中的class文件修改掉,关机重启后内存马仍然可用,那么这个分析功能会非常有用。
对于红队人员,在编写调试0day或者Nday的POC时,比如说weblogic中间件,它所包含的依赖jar包可能有上千个,查找存在漏洞的类究竟依赖于哪个jar包是非常头痛的一件事,这个工具可以帮您解决这个问题。在编写调试weblogic的poc时,ABC_123就是使用这个功能查找指定jar包依赖的。
解密Shiro数据包/CAS数据包/Log4j2数据包功能
对于设备告警的Shiro反序列化攻击行为,部分蓝队分析人员,对Shiro反序列化攻击做不了研判工作,难以辨别是否是攻击行为,还是正常的业务行为,还是设备误报。于是我在解密数据包的同时,加入了数据包分析功能,可以快速研判是否有反序列化攻击行为。
如下图所示,该功能可以手工指定key对shiro数据包进行分析。
该功能可以解密日常遇到的攻击者用于绕过waf的加密混淆的log4j2的payload,通过此功能,蓝队分析人员可以得到攻击者的一个外网ip地址。如果遇到解不了的payload,记得公众号给我留言。
部分设备遇到CAS数据包就会告警,蓝队人员又无法确定是否是误报,本功能就是为了解决这个问题而写的,使用CAS默认秘钥对数据包进行解密,解密后就可以判断出是否是反序列化攻击了。
编码/解码工具
3. 关注公众号回复“2022”,即可得到“2022年ABC123公众号年刊”的PDF电子书下载地址。